package com.cs.mapper;

import java.util.List;

import com.cs.domain.*;
import com.cs.domain.vo.ExpertEducateVO;
import org.apache.ibatis.annotations.Param;

/**
 * 抽取申请Mapper接口
 * 
 * @author ruoyi
 * @date 2024-12-03
 */
public interface CsApplicationsMapper 
{
    /**
     * 查询抽取申请
     * 
     * @param xid 抽取申请主键
     * @return 抽取申请
     */
    public CsApplications selectCsApplicationsByXid(Long xid);

    /**
     * 查询抽取申请列表
     * 
     * @param csApplications 抽取申请
     * @return 抽取申请集合
     */
    public List<CsApplications> selectCsApplicationsList(CsApplications csApplications);

    /**
     * 新增抽取申请
     * 
     * @param csApplications 抽取申请
     * @return 结果
     */
    public int insertCsApplications(CsApplications csApplications);

    /**
     * 修改抽取申请
     * 
     * @param csApplications 抽取申请
     * @return 结果
     */
    public int updateCsApplications(CsApplications csApplications);

    /**
     * 删除抽取申请
     * 
     * @param xid 抽取申请主键
     * @return 结果
     */
    public int deleteCsApplicationsByXid(Long xid);

    /**
     * 批量删除抽取申请
     * 
     * @param xids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCsApplicationsByXids(Long[] xids);

    Integer addApplications(@Param("item") CsApplications application);

    Integer addAvoidExpert(@Param("list") List<CsAvoidingExpert> avoidExpert);


    Integer addAvoidUnit(@Param("list")List<CsAvoidingUnits> avoidUnit);

    Integer addPurchase(@Param("list")List<CsRepresentative> purchase);

    Integer addCondition(@Param("list")List<CsCondition> condition);

    List<ExpertEducateVO> getExpertByAddressAndUnit(@Param("list")List<CsCondition> csCondition, @Param("collect") List<String> collect, @Param("jIds") List<Long> jIds);

    Integer addCommittee(@Param("list") List<ExpertEducateVO> expertByAddressAndUnit,@Param("iNumber") String getiNumber, @Param("code") String code);

    List<CsCommittee> committeeList(@Param("csCommittee") CsCommittee csCommittee);

    Integer deleteCommittee(String jId);

    Integer deleteAvoidExpertByINumber(String s);

    Integer deleteAvoidUnitByINumber(String s);

    Integer deletePurchaseByINumber(String s);

    Integer deleteConditionByINumber(String s);

    Integer deleteApplicationByINumber(String iNumber);


    Integer deleteCommitteeByINumber(String iNumber);

    Integer getExit(String getiNumber);

    CsApplications isExitApplication(@Param("aNumber") String msg);

    Integer changeTenderState(@Param("iNumber") String exitApplication,@Param("state")Integer state);

    Integer addSupplier(@Param("supplier") CsSupplier csSupplier);

    Integer addRelation(@Param("hId") Integer hid,@Param("userId") Long userId);

    CsApplications getStartTimeAndEndTime(String iNumber);
}